package model

import (
	"gorm.io/gorm"
	"regi-sys/regirpc/regirpc"
)

type Regi struct {
	gorm.Model
	RegiName string `gorm:"type:varchar(10);not null;comment:患者姓名"`
	RegiCode string `gorm:"type:varchar(20);not null;comment:就诊卡号"`
	Tel      string `gorm:"type:varchar(11);not null;comment:手机号码"`
	Address  string `gorm:"type:varchar(100);not null;comment:就诊人地址"`
}

func (r *Regi) RegiAdd(db *gorm.DB) error {
	return db.Debug().Create(r).Error
}

func (r *Regi) RegiDetailById(db *gorm.DB, id int64) error {
	return db.Debug().Where("id=?", id).First(r).Error
}

func (r *Regi) RegiDel(db *gorm.DB, id int64) error {
	return db.Debug().Where("id=?", id).Delete(r).Error
}

func (r *Regi) RegiUpdate(db *gorm.DB) error {
	return db.Debug().Updates(r).Error
}
func RegiList(db *gorm.DB, in *regirpc.RegiListRequest) []*regirpc.RegiList {
	var list []*regirpc.RegiList
	db.Model(&Regi{}).Select(
		"regis.id regi_id",
		"regi_name",
		"regi_code",
		"tel",
		"address",
	).Scopes(Paginate(int(in.Page), int(in.Size))).Find(&list)
	return list
}
